<?php
class Compras extends APP_Controller{
    public function __construct() {
        parent::__construct();
        $this->isValidAjaxRequest();
        $this->load->model('Compras_model','compras');
        $this->setPageSize(12);
    }

    /**
     * Llamada a la pagina principal del modulo de compras
     */
    function index()
    {
        $data = array(
            'idTab'=>$this->input->post('id'),
            'pageSize'=>$this->getPageSize(),
            'title'=>  get_class($this)
        );
        $this->load->view('compras/main',$data);
    }

    /**
     * Retorna las compras realizadas
     */
    function paginateList()
    {
        //$this->pr($this->compras->getAll());

        $this->load->helper('date');
        $this->load->helper('format');

        $start = $this->input->post('start');
        $limit = $this->input->post('limit');

        if(empty ($start)) $start=0;
        if(empty ($limit)) $limit=$this->getPageSize();

        $compras = $this->compras->getPaginateResult($start,$limit);
        $count = $this->compras->countAll();

        $compras = mysql_date_to_vzladate($compras, array('fecha'));

        $paging = array(
            'success'=>true,
            'total'=>$count,
            'data'=> $compras
        );
        echo json_encode($paging);
    }

    function add()
    {
        $data = array(
            'idTab'=>$this->input->post('gridPanelId'),
            'title'=>$this->input->post('title')
        );
        $idCompra = $this->input->post('idCompra');
        if(!empty ($idCompra)){
            $data['idCompra'] = $idCompra;

            $this->compras->setId($idCompra);
            $compra = $this->compras->getById();
            foreach ($compra as $key => $value) {
                $data[$key] = $value;
            }
            $data['productos']=json_encode($this->compras->getProductos());
        }

        $this->load->view('compras/add',$data);
    }

    /**
     *
     */
    function addProducto()
    {
        $this->load->view('compras/form_add_producto',array('updateGrid'=>$this->input->post('updateGrid')));
    }
    /**
     *
     */
    function save()
    {
        $this->load->helper('format');

        $formDatosProveedor = json_decode($this->input->post('formDatosProveedor'));
        $storeProductos = json_decode($this->input->post('productos'));
        $formDatosPago = json_decode($this->input->post('formDatosPago'));

        $this->compras->proveedor_id = $formDatosProveedor->proveedor_id;
        $this->compras->factura = $formDatosProveedor->factura;
        $this->compras->fecha = toMysqlDate($formDatosProveedor->fecha);
        $this->compras->total = $formDatosPago->total;
        $this->compras->cancelado = $formDatosPago->total;

        $productos = array();
        foreach ($storeProductos as $producto){
            array_push(
                $productos,
                array(
                    'producto_id' => $producto->producto_id,
                    'cantidad'    => $producto->cant,
                    'costo'       => $producto->costo
                )
            );
        }
        $exito = TRUE;
        $msj = 'Compra almacenada exitosamente.';
        if(!$this->compras->add($productos)){
            $exito = FALSE;
            $msj = 'La compra no pudo ser almacenada. Por favor intente de nuevo.';
        }
        echo json_encode(array(
            'exito' => $exito,
            'msj'   => $msj
        ));
    }
}
?>